#include "mydialog.h"
#include <QMessageBox>
#include <QHBoxLayout>
#include <QtConcurrent/QtConcurrent>
#include <QThread>
#include <QDebug>

MyDialog::MyDialog(QWidget *parent) : QDialog(parent)
{
    ui = new MyDialogUI(this);
    // 无边框窗口
    // setWindowTitle("MyDialog - 逻辑和UI分离");
    resize(800, 500);
    // 把MyDialogUI作为子控件放入MyDialog布局
    QHBoxLayout *layout = new QHBoxLayout(this);
    layout->addWidget(ui);
    setLayout(layout);
    // 连接按钮点击信号
    connect(ui->btn, &QPushButton::clicked, this, &MyDialog::onButtonClicked);
    // -------------------
    // 异步执行绑定
    // -------------------
    // 绑定异步按钮
    connect(ui->btnInputImag1, &QPushButton::clicked, this, &MyDialog::onInputImage1Clicked);
    connect(ui->btnInputImag2, &QPushButton::clicked, this, &MyDialog::onInputImage2Clicked);
}
void MyDialog::onButtonClicked()
{
    QMessageBox::information(this, "提示", "按钮被点击了！");
}
void MyDialog::onInputImage1Clicked()
{
    QtConcurrent::run([=]() {
        qDebug() << "图1识别开始";
        QThread::sleep(3); // 模拟耗时任务
        qDebug() << "图1识别完成";
    });
}

void MyDialog::onInputImage2Clicked()
{
    QtConcurrent::run([=]() {
        qDebug() << "图2识别开始";
        QThread::sleep(5); // 模拟耗时任务
        qDebug() << "图2识别完成";
    });
}